// Type有两种类型，应将最后一个函数的Type也声明为Exercise::作用域，因为返回值是double类型
#include <string>
using namespace std;
typedef string Type;
class Exercise {
private:
  int val;

public:
  typedef double Type;
  Type setVal(Type);
  Type initVal();
};

Exercise::Type Exercise::setVal(Type param) {
  val = param + initVal();
  return val;
}
